Digital images have become more and more popular in the field of image display because they offer clearness and less distortion during processing. In many circumstances, digital images have to undergo the process of resealing or resizing, where the resealing or resizing of digital images includes magnification or reduction of image. For example, large screen displays have a native resolution that reaches or exceeds the well-known high-definition TV (HDTV) standard. In order to display a low-resolution digital image on a large screen display, it is desirable to rescale the image to a full screen resolution.
In a magnification process, additional pixels are added into the original pixels. Then the size of the image is magnified so that the distance between adjacent pixels is maintained to be the same as that in the original digital image. Different methods are available to add the additional pixels. One method simply replicates pixels—adds a number of pixels surrounding every existing pixel to form a block of pixels with the same level. However, the simplicity itself results in a magnified image with jagged and/or blurred edges.
Another method generates additional pixels by a process of interpolation that substantially removes the blocks of unpleasant pixels and jagged edges. Interpolation is a common stage in image processing to improve the appearance of the processed image on the output imaging medium. Conventional image resealing methods using interpolation techniques usually use separable interpolation kernels to reduce the computational complexity. The separable interpolation kernels are performed in the horizontal direction first and then the vertical direction or vice verse. The kernel orientations in these implementations are set to limited levels of either horizontal or vertical. Upon encountering an oblique edge, the interpolation primarily uses the pixels on either side of an edge rather than the pixels along the edge, resulting in an interpolated edge that appears to be jagged or/and blurred.
One method is a modified bilinear interpolation method that prevents the interpolation from extending over the edges by using extrapolated estimates of pixel values for the pixels on the other side of the edge. However, this method requires iterative post-processing using a successive approximation procedure, which places high demands on memory and processing resources.
Another method selects interpolation kernels based on edge strength or user input. However, there are some consequences of the method. First, using edge strength alone as the basis of kernel selection does not provide sufficient information for reliable kernel selection (especially at oblique edges). Second, kernel selection solely based upon user input is impractical and cannot specify enough details. Generally, kernel selection needs to achieve both automatic and reliable so that the appropriate kernel can be applied on different edge strengths and edge directions which are typically found in images.